/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author BATAQUERO
 */
@Entity
@Table(name = "resumen_sem_prac_prof")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ResumenSemPracProf.findAll", query = "SELECT r FROM ResumenSemPracProf r"),
    @NamedQuery(name = "ResumenSemPracProf.findByIdResumenSemPracProf", query = "SELECT r FROM ResumenSemPracProf r WHERE r.idResumenSemPracProf = :idResumenSemPracProf"),
    @NamedQuery(name = "ResumenSemPracProf.findByFecha", query = "SELECT r FROM ResumenSemPracProf r WHERE r.fecha = :fecha"),
    @NamedQuery(name = "ResumenSemPracProf.findByFechaPrimeraVisita", query = "SELECT r FROM ResumenSemPracProf r WHERE r.fechaPrimeraVisita = :fechaPrimeraVisita"),
    @NamedQuery(name = "ResumenSemPracProf.findByAreaTrabajo", query = "SELECT r FROM ResumenSemPracProf r WHERE r.areaTrabajo = :areaTrabajo"),
    @NamedQuery(name = "ResumenSemPracProf.findByAspectosTratados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aspectosTratados = :aspectosTratados"),
    @NamedQuery(name = "ResumenSemPracProf.findByAcuerdosRealizados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.acuerdosRealizados = :acuerdosRealizados"),
    @NamedQuery(name = "ResumenSemPracProf.findByProcesosEjecutados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.procesosEjecutados = :procesosEjecutados"),
    @NamedQuery(name = "ResumenSemPracProf.findByAnalisisCualitativoDesempeno", query = "SELECT r FROM ResumenSemPracProf r WHERE r.analisisCualitativoDesempeno = :analisisCualitativoDesempeno"),
    @NamedQuery(name = "ResumenSemPracProf.findByValoracionFundamenTeorica", query = "SELECT r FROM ResumenSemPracProf r WHERE r.valoracionFundamenTeorica = :valoracionFundamenTeorica"),
    @NamedQuery(name = "ResumenSemPracProf.findByFechaVisitaFinal", query = "SELECT r FROM ResumenSemPracProf r WHERE r.fechaVisitaFinal = :fechaVisitaFinal"),
    @NamedQuery(name = "ResumenSemPracProf.findByAspectosTratadosVisitaFin", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aspectosTratadosVisitaFin = :aspectosTratadosVisitaFin"),
    @NamedQuery(name = "ResumenSemPracProf.findByAnalisisActivProgramEjecutadas", query = "SELECT r FROM ResumenSemPracProf r WHERE r.analisisActivProgramEjecutadas = :analisisActivProgramEjecutadas"),
    @NamedQuery(name = "ResumenSemPracProf.findByAspectosHabilidadesMejorar", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aspectosHabilidadesMejorar = :aspectosHabilidadesMejorar"),
    @NamedQuery(name = "ResumenSemPracProf.findByHorarioPracticaDe", query = "SELECT r FROM ResumenSemPracProf r WHERE r.horarioPracticaDe = :horarioPracticaDe"),
    @NamedQuery(name = "ResumenSemPracProf.findByHorarioPracticaHasta", query = "SELECT r FROM ResumenSemPracProf r WHERE r.horarioPracticaHasta = :horarioPracticaHasta"),
    @NamedQuery(name = "ResumenSemPracProf.findBySemanasTrabajadas", query = "SELECT r FROM ResumenSemPracProf r WHERE r.semanasTrabajadas = :semanasTrabajadas"),
    @NamedQuery(name = "ResumenSemPracProf.findByHorasRealesTrabajadas", query = "SELECT r FROM ResumenSemPracProf r WHERE r.horasRealesTrabajadas = :horasRealesTrabajadas"),
    @NamedQuery(name = "ResumenSemPracProf.findBySemanasDiasNoTrabajados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.semanasDiasNoTrabajados = :semanasDiasNoTrabajados"),
    @NamedQuery(name = "ResumenSemPracProf.findByJustificacion", query = "SELECT r FROM ResumenSemPracProf r WHERE r.justificacion = :justificacion"),
    @NamedQuery(name = "ResumenSemPracProf.findByAceptacionPracticante", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aceptacionPracticante = :aceptacionPracticante"),
    @NamedQuery(name = "ResumenSemPracProf.findByAceptacionSupervisorEnt", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aceptacionSupervisorEnt = :aceptacionSupervisorEnt"),
    @NamedQuery(name = "ResumenSemPracProf.findByAceptacionSupervisorUniv", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aceptacionSupervisorUniv = :aceptacionSupervisorUniv"),
    @NamedQuery(name = "ResumenSemPracProf.findByEdicionFormato", query = "SELECT r FROM ResumenSemPracProf r WHERE r.edicionFormato = :edicionFormato"),
    @NamedQuery(name = "ResumenSemPracProf.findByMaxId", query = "SELECT max(r.idResumenSemPracProf) FROM ResumenSemPracProf r"),
    @NamedQuery(name = "ResumenSemPracProf.findByConvenioEdicionFormato", query = "SELECT r FROM ResumenSemPracProf r WHERE r.convenioXPeriodoXEstudiante = :convenioXPeriodoXEstudiante AND r.edicionFormato = :edicionFormato")})
public class ResumenSemPracProf implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "idResumenSemPracProf")
    private Integer idResumenSemPracProf;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha")
    @Temporal(TemporalType.DATE)
    private Date fecha;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechaPrimeraVisita")
    @Temporal(TemporalType.DATE)
    private Date fechaPrimeraVisita;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "areaTrabajo")
    private String areaTrabajo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "aspectosTratados")
    private String aspectosTratados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "acuerdosRealizados")
    private String acuerdosRealizados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "procesosEjecutados")
    private String procesosEjecutados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "analisisCualitativoDesempeno")
    private String analisisCualitativoDesempeno;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "valoracionFundamenTeorica")
    private String valoracionFundamenTeorica;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechaVisitaFinal")
    @Temporal(TemporalType.DATE)
    private Date fechaVisitaFinal;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "aspectosTratadosVisitaFin")
    private String aspectosTratadosVisitaFin;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "analisisActivProgramEjecutadas")
    private String analisisActivProgramEjecutadas;
    @Size(max = 500)
    @Column(name = "aspectosHabilidadesMejorar")
    private String aspectosHabilidadesMejorar;
    @Basic(optional = false)
    @NotNull
    @Column(name = "horarioPracticaDe")
    @Temporal(TemporalType.DATE)
    private Date horarioPracticaDe;
    @Basic(optional = false)
    @NotNull
    @Column(name = "horarioPracticaHasta")
    @Temporal(TemporalType.DATE)
    private Date horarioPracticaHasta;
    @Basic(optional = false)
    @NotNull
    @Column(name = "semanasTrabajadas")
    private int semanasTrabajadas;
    @Basic(optional = false)
    @NotNull
    @Column(name = "horasRealesTrabajadas")
    private int horasRealesTrabajadas;
    @Basic(optional = false)
    @NotNull
    @Column(name = "semanasDiasNoTrabajados")
    private int semanasDiasNoTrabajados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "justificacion")
    private String justificacion;
    @Size(max = 12)
    @Column(name = "aceptacionPracticante")
    private String aceptacionPracticante;
    @Size(max = 12)
    @Column(name = "aceptacionSupervisorEnt")
    private String aceptacionSupervisorEnt;
    @Size(max = 12)
    @Column(name = "aceptacionSupervisorUniv")
    private String aceptacionSupervisorUniv;
    @Basic(optional = false)
    @NotNull
    @Column(name = "edicionFormato")
    private boolean edicionFormato;
    @JoinColumns({
        @JoinColumn(name = "idConvenioPeriodo", referencedColumnName = "idConvenioPeriodo"),
        @JoinColumn(name = "idEstudiante", referencedColumnName = "idEstudiante")})
    @ManyToOne(optional = false)
    private ConvenioXPeriodoXEstudiante convenioXPeriodoXEstudiante;

    public ResumenSemPracProf() {
    }

    public ResumenSemPracProf(Integer idResumenSemPracProf) {
        this.idResumenSemPracProf = idResumenSemPracProf;
    }

    public ResumenSemPracProf(Integer idResumenSemPracProf, Date fecha, Date fechaPrimeraVisita, String areaTrabajo, String aspectosTratados, String acuerdosRealizados, String procesosEjecutados, String analisisCualitativoDesempeno, String valoracionFundamenTeorica, Date fechaVisitaFinal, String aspectosTratadosVisitaFin, String analisisActivProgramEjecutadas, Date horarioPracticaDe, Date horarioPracticaHasta, int semanasTrabajadas, int horasRealesTrabajadas, int semanasDiasNoTrabajados, String justificacion, boolean edicionFormato) {
        this.idResumenSemPracProf = idResumenSemPracProf;
        this.fecha = fecha;
        this.fechaPrimeraVisita = fechaPrimeraVisita;
        this.areaTrabajo = areaTrabajo;
        this.aspectosTratados = aspectosTratados;
        this.acuerdosRealizados = acuerdosRealizados;
        this.procesosEjecutados = procesosEjecutados;
        this.analisisCualitativoDesempeno = analisisCualitativoDesempeno;
        this.valoracionFundamenTeorica = valoracionFundamenTeorica;
        this.fechaVisitaFinal = fechaVisitaFinal;
        this.aspectosTratadosVisitaFin = aspectosTratadosVisitaFin;
        this.analisisActivProgramEjecutadas = analisisActivProgramEjecutadas;
        this.horarioPracticaDe = horarioPracticaDe;
        this.horarioPracticaHasta = horarioPracticaHasta;
        this.semanasTrabajadas = semanasTrabajadas;
        this.horasRealesTrabajadas = horasRealesTrabajadas;
        this.semanasDiasNoTrabajados = semanasDiasNoTrabajados;
        this.justificacion = justificacion;
        this.edicionFormato = edicionFormato;
    }

    public Integer getIdResumenSemPracProf() {
        return idResumenSemPracProf;
    }

    public void setIdResumenSemPracProf(Integer idResumenSemPracProf) {
        this.idResumenSemPracProf = idResumenSemPracProf;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Date getFechaPrimeraVisita() {
        return fechaPrimeraVisita;
    }

    public void setFechaPrimeraVisita(Date fechaPrimeraVisita) {
        this.fechaPrimeraVisita = fechaPrimeraVisita;
    }

    public String getAreaTrabajo() {
        return areaTrabajo;
    }

    public void setAreaTrabajo(String areaTrabajo) {
        this.areaTrabajo = areaTrabajo;
    }

    public String getAspectosTratados() {
        return aspectosTratados;
    }

    public void setAspectosTratados(String aspectosTratados) {
        this.aspectosTratados = aspectosTratados;
    }

    public String getAcuerdosRealizados() {
        return acuerdosRealizados;
    }

    public void setAcuerdosRealizados(String acuerdosRealizados) {
        this.acuerdosRealizados = acuerdosRealizados;
    }

    public String getProcesosEjecutados() {
        return procesosEjecutados;
    }

    public void setProcesosEjecutados(String procesosEjecutados) {
        this.procesosEjecutados = procesosEjecutados;
    }

    public String getAnalisisCualitativoDesempeno() {
        return analisisCualitativoDesempeno;
    }

    public void setAnalisisCualitativoDesempeno(String analisisCualitativoDesempeno) {
        this.analisisCualitativoDesempeno = analisisCualitativoDesempeno;
    }

    public String getValoracionFundamenTeorica() {
        return valoracionFundamenTeorica;
    }

    public void setValoracionFundamenTeorica(String valoracionFundamenTeorica) {
        this.valoracionFundamenTeorica = valoracionFundamenTeorica;
    }

    public Date getFechaVisitaFinal() {
        return fechaVisitaFinal;
    }

    public void setFechaVisitaFinal(Date fechaVisitaFinal) {
        this.fechaVisitaFinal = fechaVisitaFinal;
    }

    public String getAspectosTratadosVisitaFin() {
        return aspectosTratadosVisitaFin;
    }

    public void setAspectosTratadosVisitaFin(String aspectosTratadosVisitaFin) {
        this.aspectosTratadosVisitaFin = aspectosTratadosVisitaFin;
    }

    public String getAnalisisActivProgramEjecutadas() {
        return analisisActivProgramEjecutadas;
    }

    public void setAnalisisActivProgramEjecutadas(String analisisActivProgramEjecutadas) {
        this.analisisActivProgramEjecutadas = analisisActivProgramEjecutadas;
    }

    public String getAspectosHabilidadesMejorar() {
        return aspectosHabilidadesMejorar;
    }

    public void setAspectosHabilidadesMejorar(String aspectosHabilidadesMejorar) {
        this.aspectosHabilidadesMejorar = aspectosHabilidadesMejorar;
    }

    public Date getHorarioPracticaDe() {
        return horarioPracticaDe;
    }

    public void setHorarioPracticaDe(Date horarioPracticaDe) {
        this.horarioPracticaDe = horarioPracticaDe;
    }

    public Date getHorarioPracticaHasta() {
        return horarioPracticaHasta;
    }

    public void setHorarioPracticaHasta(Date horarioPracticaHasta) {
        this.horarioPracticaHasta = horarioPracticaHasta;
    }

    public int getSemanasTrabajadas() {
        return semanasTrabajadas;
    }

    public void setSemanasTrabajadas(int semanasTrabajadas) {
        this.semanasTrabajadas = semanasTrabajadas;
    }

    public int getHorasRealesTrabajadas() {
        return horasRealesTrabajadas;
    }

    public void setHorasRealesTrabajadas(int horasRealesTrabajadas) {
        this.horasRealesTrabajadas = horasRealesTrabajadas;
    }

    public int getSemanasDiasNoTrabajados() {
        return semanasDiasNoTrabajados;
    }

    public void setSemanasDiasNoTrabajados(int semanasDiasNoTrabajados) {
        this.semanasDiasNoTrabajados = semanasDiasNoTrabajados;
    }

    public String getJustificacion() {
        return justificacion;
    }

    public void setJustificacion(String justificacion) {
        this.justificacion = justificacion;
    }

    public String getAceptacionPracticante() {
        return aceptacionPracticante;
    }

    public void setAceptacionPracticante(String aceptacionPracticante) {
        this.aceptacionPracticante = aceptacionPracticante;
    }

    public String getAceptacionSupervisorEnt() {
        return aceptacionSupervisorEnt;
    }

    public void setAceptacionSupervisorEnt(String aceptacionSupervisorEnt) {
        this.aceptacionSupervisorEnt = aceptacionSupervisorEnt;
    }

    public String getAceptacionSupervisorUniv() {
        return aceptacionSupervisorUniv;
    }

    public void setAceptacionSupervisorUniv(String aceptacionSupervisorUniv) {
        this.aceptacionSupervisorUniv = aceptacionSupervisorUniv;
    }

    public boolean getEdicionFormato() {
        return edicionFormato;
    }

    public void setEdicionFormato(boolean edicionFormato) {
        this.edicionFormato = edicionFormato;
    }

    public ConvenioXPeriodoXEstudiante getConvenioXPeriodoXEstudiante() {
        return convenioXPeriodoXEstudiante;
    }

    public void setConvenioXPeriodoXEstudiante(ConvenioXPeriodoXEstudiante convenioXPeriodoXEstudiante) {
        this.convenioXPeriodoXEstudiante = convenioXPeriodoXEstudiante;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idResumenSemPracProf != null ? idResumenSemPracProf.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ResumenSemPracProf)) {
            return false;
        }
        ResumenSemPracProf other = (ResumenSemPracProf) object;
        if ((this.idResumenSemPracProf == null && other.idResumenSemPracProf != null) || (this.idResumenSemPracProf != null && !this.idResumenSemPracProf.equals(other.idResumenSemPracProf))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entidades.ResumenSemPracProf[ idResumenSemPracProf=" + idResumenSemPracProf + " ]";
    }
    
}
